home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CRESC / Variations / symbol-repeat-i < prev   
Lisp/Scheme  |  1996-12-31  |  1KB  |  44 lines

  1. symbol-repeat-i number-of-times symbol fill-source pattern
  2.  
  3. Use this for adding ornamentation into a symbol-pattern. A symbol can be selected to repeat for a number-of-times. Instead of a direct repetition of the repeated symbol a fill-source can be identified to fill the repeated symbol.
  4.  
  5. (setq mel '(a b f g a f g h a b c))
  6. (symbol-repeat-i 4 'a '(b a -b -c) mel)
  7. --> (b a -b -c b f g b a -b -c f g h b a -b -c b c)
  8.  
  9. (symbol-repeat-i 4 'a nil mel)
  10. --> (a a a a b f g a a a a f g h a a a a b c)
  11.  
  12. Combine with length-repeat within a neuron expression to match symbol ornamentation with the correct rhythmic subdivisions.
  13.  
  14. (setq mel '(a b f g a f g h a b c))
  15. (setq rhx '(1/8 1/8 1/8 1/8 1/4 1/4 1/4 1/4 1/8 1/16 1/16))
  16.  
  17. (def-neuron ornament-length
  18.    (and (in 1 'a )
  19.         (in 2 (nth 4 rhx)))    
  20.    (length-repeat 4 '(1/4))
  21.    (and (in 1 'a )
  22.        (in 2 '1/8)) 
  23.    (length-repeat 2 '(1/8))  
  24.    (otherwise (in 2 0))
  25. )
  26.  
  27. (run-neuron 'ornament-length
  28.             mel rhx)
  29. --> (1/16 1/16 1/8 1/8 1/8 1/16 1/16 1/16 1/16 1/4 1/4 1/4 
  30. 1/16 1/16 1/16 1/16)
  31.             
  32. (def-neuron ornament-symbol
  33.    (and (in 1 'a )
  34.         (in 2 (nth 4 rhx)))
  35.    (symbol-repeat-i 4 'a (symbol-inversion 'a mel) '(a))
  36.    (and (in 1 'a )
  37.         (in 2 '1/8))
  38.    (symbol-transpose -2 (symbol-repeat 2 '(a)))  
  39.    (otherwise (in 1 0))
  40. )
  41.  
  42. (run-neuron 'ornament-symbol
  43.             mel rhx)
  44. --> (-c -c b f g a -b -f -g f g h -c -c b c)